﻿using System;

namespace Silverstone.DI
{
    /// <summary>
    ///     Defines methods for creating instances of objects
    /// </summary>
    public interface ICreationStrategy
    {
        /// <summary>
        ///     Creates an instance of the specified type.
        /// </summary>
        /// <param name="type">The <see cref="Type"/> of object to create.</param>
        /// <param name="constructorParams">The parameters to pass to the constructor.</param>
        /// <returns>The instance which was created.</returns>
        object CreateInstance(Type type, object[] constructorParams);
    }
}
